/***
 * 此文件为工程化全局注册组件js
 */

const path = require('path')
const files = require.context('@/components', false, /\.vue$/) 
// webpack 的方法,vue 工程一般基于 webpack,所以可以使用
// require.context(directory,useSubdirectories,regExp)
// 接收三个参数:
// directory：说明需要检索的目录
// useSubdirectories：是否检索子目录
// regExp: 匹配文件的正则表达式,一般是文件名  此处取的后缀为.vue的文件
export default {
    // 导出一个默认对象
    install(Vue) {
        //   该方法会在Vue.use时调用
        //注册全局的组件
        files.keys().forEach(key => {
            //拿到文件名
            const name = path.basename(key, '.vue')     
            //拿到对应的文件 相当于 import HelloWorld from './components/HelloWorld.vue'
            const value = files(key).default || files(key) 
            //注册组件
            Vue.component(name,value);
        })
    }
}